package cn.hls.dao;

import java.util.List;

import cn.hls.entity.Module;
import cn.hls.entity.vo.ExtTree;
import cn.hls.entity.vo.PageInfo;

/**
 * @fileName: ModuleDao.java
 * @descrption: 功能模块接口类
 * @author : yinghui.zhang
 * @Email: uuhui@163.com
 * @date 2015-4-3
 * @version 1.0
 */
public interface ModuleDao extends BaseDao<Module> {
	/**
	 * 加载子模块内容
	 * 
	 * @param module
	 *            模块对象
	 * @param nodeId
	 *            节点编号
	 * @return List<ExtTree>
	 */
	List<ExtTree> loadChildModules(Module module, Long nodeId) throws Exception;

	/**
	 * 分页显示模块内容
	 * 
	 * @param module
	 *            模块实体对象
	 * @param page
	 *            分页参数对象
	 * @return PageInfo<Module>
	 */
	PageInfo<Module> loadModules(Module module, PageInfo<Module> page) throws Exception;

	/**
	 * 根据编号删除模块信息
	 * 
	 * @param id
	 *            编号
	 * @return String
	 */
	public String deleteModule(Long id) throws Exception;

	/**
	 * 更新模块的排序信息
	 * 
	 * @param ids
	 *            编号
	 */
	void updateModuleSort(String ids) throws Exception;

	/**
	 * 根据链接地址查询模块
	 * 
	 * @param url链接地址
	 * @return Module
	 */
	Module findModule(String url) throws Exception;

	/**
	 * 根据对象的名称及代码查询模块对象信息
	 * 
	 * @param entity
	 *            实体对象
	 * @return Module
	 * @throws Exception
	 *             异常
	 */
	public Module findModule(Module entity)throws Exception;
	/**
	 * 模块模块名查询模块
	 * 
	 * @param name
	 *            模块名
	 * @param code
	 *            模块代码
	 * @return Module
	 */
	Module findModule(String name, String code) throws Exception;
}
